home *** CD-ROM | disk | FTP | other *** search
- /*
- * $RCSfile: space.c,v $
- * $Revision: 1.1.1.1 $
- * $Date: 1996/05/04 21:55:12 $
- */
- /**********************************************************************
- * EXODUS Database Toolkit Software
- * Copyright (c) 1991 Computer Sciences Department, University of
- * Wisconsin -- Madison
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * THE COMPUTER SCIENCES DEPARTMENT OF THE UNIVERSITY OF WISCONSIN --
- * MADISON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION.
- * THE DEPARTMENT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
- * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * The EXODUS Project Group requests users of this software to return
- * any improvements or extensions that they make to:
- *
- * EXODUS Project Group
- * c/o David J. DeWitt and Michael J. Carey
- * Computer Sciences Department
- * University of Wisconsin -- Madison
- * Madison, WI 53706
- *
- * or exodus@cs.wisc.edu
- *
- * In addition, the EXODUS Project Group requests that users grant the
- * Computer Sciences Department rights to redistribute these changes.
- **********************************************************************/
-
-
- #include <stdio.h>
- #include "ess.h"
- #include "checking.h"
- #include "error.h"
- #include "list.h"
- #include "io.h"
- #include "page.h"
- #include "object.h"
- #include "tid.h"
- #include "bf.h"
- #include "bf_macro.h"
- #include "chunk.h"
- #include "trace.h"
- #include "bf_globals.h"
-
- int PageHashPoolSize;
- int PageHashTableSize;
-
- int NumGroupLink;
- LIST GroupLinkPool;
- GROUPLINK *GroupLinkPtr = NULL;
- int NumBufGroups;
- BUFGROUP *BufGroupPtr = NULL;
- LIST BufGroupPool;
- LIST UsedBufGroups;
- int MaxBufs;
- int ReservedBufs;
- LIST PageInfoPool;
- PAGEINFO *PageInfoPtr = NULL;
- int NumBuffers = 0;
- char *BufferPool = NULL;
- char *MallocBufferPool = NULL;
- BUFINFO *BufInfoTable = NULL;
- int NumChunkDesc;
- CHUNKDESC *ChunkDescPtr = NULL;
- LIST ChunkDescPool;
- int NumFreeBlocks;
- LIST UserDescPool;
- int NumUserDesc;
- USERDESC *UserDescTable = NULL;
- LIST *ObjectHashTable = NULL;
- int ObjectHashTableSize;
- unsigned int ObjectHashMask;
- LIST SuspendListPool;
- int SuspendListSize;
- int NumBufferSizes;
- LIST *FreeBufTable = NULL;
- int CacheClock;
- LIST BufStructPool;
- PAGE2SIZE MaxBuf2Size;
- PAGE2SIZE MaxPage2Size;
-
- const LRC LrcNone = LRC_NONE;
- const PID PidNone = PID_NONE;
-
- /*
- * MaxLgOpChunk is set to around 16x(free space on lg obj page) as
- * an educated guess for an appropriate amount to use in changing
- * the size of a large object. The specific multiple, 14, is chosen
- * so that chunks just about fill a power-of-2 buffer chunk, but don't
- * overflow it.
- */
- int MaxLgOpChunk = LGDATA_USABLESIZE * 14;
-